TPTP Problem File: DAT143^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT143^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Coinductive list prefix 109
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : coinductive_list_prefix__109.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v7.1.0
% Syntax   : Number of formulae    :   22 (   3 unt;  14 typ;   0 def)
%            Number of atoms       :   13 (   3 equ;   0 cnn)
%            Maximal formula atoms :    2 (   1 avg)
%            Number of connectives :   62 (   0   ~;   0   |;   0   &;  57   @)
%                                         (   0 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   4 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   20 (  20   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   14 (  12 usr;   1 con; 0-5 aty)
%            Number of variables   :   17 (   3   ^;   6   !;   0   ?;  17   :)
%                                         (   8  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:41:08.398
%------------------------------------------------------------------------------
%----Could-be-implicit typings (6)
thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Code__Numeral_Onatural,type,
    code_natural: $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Typerep_Otyperep,type,
    typerep: $tType ).

thf(ty_t_Predicate_Opred,type,
    pred: $tType > $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

%----Explicit typings (8)
thf(sy_cl_Typerep_Otyperep,type,
    typerep2: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Quickcheck__Random_Orandom,type,
    quickcheck_random: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Random__Pred_Oiter,type,
    random_iter: 
      !>[A: $tType] : ( code_natural > code_natural > ( product_prod @ code_natural @ code_natural ) > ( pred @ A ) ) ).

thf(sy_c_Random__Pred_Oiter_H,type,
    random_iter2: 
      !>[A: $tType] : ( ( itself @ A ) > code_natural > code_natural > ( product_prod @ code_natural @ code_natural ) > ( pred @ A ) ) ).

thf(sy_c_Typerep_Otyperep_Otyperep__of,type,
    typerep_of: 
      !>[A: $tType] : ( ( ( itself @ A ) > typerep ) > A > typerep ) ).

thf(sy_c_Typerep_Otyperep__class_Otyperep,type,
    typerep_typerep: 
      !>[A: $tType] : ( ( itself @ A ) > typerep ) ).

thf(sy_c_Typerep_Otyperep__class_Otyperep__of,type,
    typerep_typerep_of: 
      !>[A: $tType] : ( A > typerep ) ).

%----Relevant facts (3)
thf(fact_0_typerep_Otyperep__of__def,axiom,
    ! [A: $tType] :
      ( ( typerep_of @ A )
      = ( ^ [Typerep: ( itself @ A ) > typerep,X: A] : ( Typerep @ ( type @ A ) ) ) ) ).

% typerep.typerep_of_def
thf(fact_1_Random__Pred_Oiter__def,axiom,
    ! [A: $tType] :
      ( ( quickcheck_random @ A @ ( type @ A ) )
     => ( ( random_iter @ A )
        = ( random_iter2 @ A @ ( type @ A ) ) ) ) ).

% Random_Pred.iter_def
thf(fact_2_typerep__of__def,axiom,
    ! [A: $tType] :
      ( ( typerep2 @ A @ ( type @ A ) )
     => ( ( typerep_typerep_of @ A )
        = ( ^ [X: A] : ( typerep_typerep @ A @ ( type @ A ) ) ) ) ) ).

% typerep_of_def

%----Type constructors (4)
thf(tcon_Predicate_Opred___Typerep_Otyperep,axiom,
    ! [A2: $tType] :
      ( ( typerep2 @ A2 @ ( type @ A2 ) )
     => ( typerep2 @ ( pred @ A2 ) @ ( type @ ( pred @ A2 ) ) ) ) ).

thf(tcon_Typerep_Otyperep___Typerep_Otyperep_1,axiom,
    typerep2 @ typerep @ ( type @ typerep ) ).

thf(tcon_Coinductive__List_Ollist___Quickcheck__Random_Orandom,axiom,
    ! [A2: $tType] :
      ( ( quickcheck_random @ A2 @ ( type @ A2 ) )
     => ( quickcheck_random @ ( coinductive_llist @ A2 ) @ ( type @ ( coinductive_llist @ A2 ) ) ) ) ).

thf(tcon_Coinductive__List_Ollist___Typerep_Otyperep_2,axiom,
    ! [A2: $tType] :
      ( ( typerep2 @ A2 @ ( type @ A2 ) )
     => ( typerep2 @ ( coinductive_llist @ A2 ) @ ( type @ ( coinductive_llist @ A2 ) ) ) ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    $false ).

%------------------------------------------------------------------------------